
//学生管理系统的增删改查
package studentmangement;

import java.util.ArrayList;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: WHY
 * Date: 2023-03-03
 * Time: 15:39
 */
public class TestMain {
    public static void main(String[] args) {
        //创建链表存储学生对象
        ArrayList<Student> list = new ArrayList<>();
        Student s1 = new Student("王一博", "19970805", "123456", "1899", 24);
        Student s2 = new Student("魏鸿雁", "20030214", "123586", "1388", 20);
        Student s3 = new Student("江宇", "20030409", "123478", "1386", 19);

        list.add(s1);
        list.add(s2);
        list.add(s3);


        while(true){
            System.out.println("======欢迎进入学生系统");
            System.out.println("1 添加学生信息");
            System.out.println("2 删除学生信息");
            System.out.println("3 修改学生信息");
            System.out.println("4 查询学生信息");
            System.out.println("5 退出学生系统");


            Scanner scanner=new Scanner(System.in);
            String   string =scanner.nextLine();
            switch (string){
                case "1":
                    addInformation(list);
                    break;
                case "2":
                    removeInformation(list);
                    break;
                case "3":
                    updateInformation(list);
                    break;
                case "4":
                    searchInformation(list);
                    break;
                case "5":
                default:
                    System.exit(0);
                    System.out.println("退出系统");


            }

        }






    }
    //增加学生信息
    public static void  addInformation(ArrayList<Student> list){
         Scanner scanner=new Scanner(System.in);
        System.out.println("输入要增加学生的学号");
        String str=scanner.nextLine();//输入一个学号

        boolean  flag=true;//这代表该学号不存在,可添加,做一个标记
        //遍历这个链表
        for(int i=0;i<list.size();i++){
            Student s=list.get(i);
            if(s.getNo().equals(str)){
                 flag=false;//说明该学号已经存在了,所以不添加
                System.out.println("已经有此学生,不添加");
                break;
            }
            
        }
        if(flag){
            System.out.println("输入姓名");
            String name=scanner.nextLine();
            System.out.println("输入学号");
            String no=scanner.nextLine();
            System.out.println("输入身份证");
            String id=scanner.nextLine();
            System.out.println("输入电话号码");
            String number=scanner.nextLine();
            System.out.println("输入年龄");
            int age=scanner.nextInt();
            Student s=new Student();
            s.setName(name);
            s.setNo(no);
            s.setId(id);
            s.setNumber(number);
            s.setAge(age);
            list.add(s);
            System.out.println("添加成功");
            
        }
    }
    //删除学生信息
    public static void  removeInformation(ArrayList<Student> list){
        Scanner scanner=new Scanner(System.in);
        System.out.println("输入要删除学生的学号");
        String no=scanner.nextLine();

        int index=-1;
        //遍历链表
        
        for(int i=0;i<list.size();i++){
            Student s=list.get(i);
            if(s.getNo().equals(no)){
               index=i;
                System.out.println("删除的学生找到了");
                break;
            }
            
        }
        if(index==-1){
            System.out.println("删除的学生不存在");
        }else{
            list.remove(index);
        }
    }
    //修改学生信息
    public static void  updateInformation(ArrayList<Student> list){
        Scanner scanner=new Scanner(System.in);
        System.out.println("输入要修改学生的学号");
        String no =scanner.nextLine();

        int index=-1;
        //遍历链表
        for(int i=0;i<list.size();i++){
            Student s=list.get(i);
            if(s.getNo().equals(no)){
                index=i;
                System.out.println("修改的学生找到了");
                break;
            }
        }
        if(index==-1){
            System.out.println("要修改的学生信息不存在");
        }else{
            System.out.println("修改的学生找到了");
            //添加这个学生的信息
            System.out.println("输入姓名");
            String name=scanner.nextLine();
            System.out.println("输入学号");
            String no1=scanner.nextLine();
            System.out.println("输入身份证");
            String id=scanner.nextLine();
            System.out.println("输入电话号码");
            String number=scanner.nextLine();
            System.out.println("输入年龄");
            int age=scanner.nextInt();
            Student s=new Student();
            s.setName(name);
            s.setNo(no);
            s.setId(id);
            s.setNumber(number);
            s.setAge(age);
            list.set(index,s);//链表的方法,将index下标所对应的元素变为s
        }
    }
    //删除学生信息
    public static void  searchInformation(ArrayList<Student> list){
      Scanner scanner=new Scanner(System.in);
        System.out.println("输入要查找的学生的学号");
        String no =scanner.nextLine();

        boolean flag=false;
        //遍历链表
        for(int i=0;i<list.size();i++){
            Student s=list.get(i);
            if(s.getNo().equals(no)){
                flag=true;
                System.out.println("找到了");
            }
        }

    }
    //显示所有学生
    public static void  show(ArrayList<Student> list){
        System.out.println("====显示学生信息====");
        for (int i=0;i<list.size();i++){
            Student s=list.get(i);
            System.out.println(s);
        }
    }

}

